package net.yebaihe.xqbz;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import android.view.animation.AccelerateDecelerateInterpolator;
import android.view.animation.AlphaAnimation;
import android.view.animation.AnimationSet;
import android.view.animation.TranslateAnimation;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;

import java.util.ArrayList;
import java.util.Date;

import net.youmi.android.AdManager;
import net.youmi.android.appoffers.AppOffersManager;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.WallpaperManager;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import android.widget.Toast;

public class BizhixinqingActivity extends Activity {
	
    private static final String PREFS_NAME = "XQBJ_NORMAL";

	static{
    	 AdManager.init("0f2fcda70ad2d846", "f56ca55bb927120b", 30,true);
    }
    
	Object[][]questions={
			{"你迷失在灯红酒绿中吗？",R.drawable.c01,"也许有时候，你需要一个人静下心来想一想……"},
			{"时常会觉得孤单吗？",R.drawable.c02,"不要害怕孤单，其实人最好的朋友，是自己的心灵。"},
			{"冬天要来了，觉得冷吗？",R.drawable.c03,"我愿温暖你，愿你在夜里有一个温暖的好梦。"},
			{"经常沉浸在对过往的回忆里吗？",R.drawable.c04,"我希望你能带着温暖的回忆，寻找更温暖的未来！"},
			{"今天的心情好吗？",R.drawable.c05,"保持好心情，我喜欢你的微笑！"},
			{"总是在等待？什么人，什么事，或是未知的机会？",R.drawable.c06,"等待让人不安，却给人无限希望，我会陪你等待。"},
			{"时常觉得生活很枯燥吗？",R.drawable.c07,"给自己一个大胆颜色，做一些大胆的事情吧！"},
			{"有那么一个人能温暖你的心吗？",R.drawable.c08,"幸福就是和最爱的人相互温暖！"},
			{"还在坚持自己的梦想吗？",R.drawable.c09,"就算你的梦想已经斑驳，它永远都是你心里最美好的向往。"},
			{"那个你讨厌的人，又让你不顺心了吧？",R.drawable.c10,"让那些烦恼都去见鬼，干净的世界里，你才是主角。"},
			{"冷漠、孤单、沮丧……这些词常常会出现吗？",R.drawable.c11,"我想对你说：迎着太阳，影子就会被你甩在身后。"},
			{"想自己一个人躲起来偷偷哭吗？",R.drawable.c12,"看到了吗？在五颜六色的青春里，泪水也是彩色的！"},
			{"左还是右呢？你经常不知道该如何选择？",R.drawable.c13,"其实你明白，只有一个方向，它最接近你的内心！"},
			{"生活让你感到绝望吗？",R.drawable.c14,"几米说：我总是在最深的绝望里，看见最美的风景，把这句话送给你。"},
			{"觉得爱情是一种折磨吧？",R.drawable.c15,"就算是折磨，也让人无可自拔，这就是爱情。"},
			{"爱情给你带来了无比的幸福感，是吗？",R.drawable.c16,"谢谢你的爱，让我拥有了整个星空。"},
			{"自己一路走来，很不容易吧？",R.drawable.c17,"抱抱自己，告诉自己内心强大的人都是孤独的。"},
			{"不知该如何对他（她）表达你的爱吗？",R.drawable.c18,"一句我爱你，一个小惊喜，给爱加点特别的味道！"},
			{"觉得自己的梦想很难实现吗？",R.drawable.c19,"我想对你说：就算梦想再遥不可及，也要尽量让它飞得远些！"},
			{"是否觉得烦燥、无法静下心来？",R.drawable.c20,"送给你一幅画，还有这几个字：心素如简，人淡如菊"},
			{"你会问：为什么这个世界和我想像的不一样吗？",R.drawable.c21,"是的，幻想往往是由多色绘成，现实却以黑白色呈现。"},
			{"有时会感觉自卑吗？",R.drawable.c22,"每个人的身上都有属于自身独特的光芒，那是别人无法模仿和拥有的，我喜欢你！"},
			{"一直在渴望自由却总是认为得不到吗？",R.drawable.c23,"如果不能打破心的禁锢，即使给你整个天空，你也找不到自由的感觉。"},
			{"会感觉压力超过了自己能承受的范围吗？",R.drawable.c24,"其实生活的一大乐趣，便是完成别人认为你不能做到的事情，加油！"},
			{"一直在寻寻觅觅却一直遇不到你的TA吗？",R.drawable.c25,"有一天，会有一个人走进你的生活，并且让你明白为什么你和其他人都没有结果。"},
			{"时常会用“一团麻”来形容自己的生活吗？",R.drawable.c26,"试着让生活变得简单，对幸福或寂寞顺其自然。"},
			{"会刻意逃避困难，认为自己根本解决不了？",R.drawable.c27,"只有在勇敢面对困境的时候，你才知道自己像树一样独立而坚强。"},
			{"总是觉得为了别人而活着吗?",R.drawable.c28,"跟自己说声对不起，因为你为了别人难为了自己。"},
			{"你一直在介意别人对你的看法吗？",R.drawable.c29,"何必向不值得的人证明什么，生活得更好，是为你自己。"},
			{"在逐梦的道路上总是觉得无助、孤单？",R.drawable.c30,"如果你无法忍受孤独，就不要追逐梦想，每一个成功的人，都有一段沉默的时光。"},
			
			
	};
	String[] byebye={
			"see you next time",
			"bye",
			"下次见！",
	};
	ArrayList<Integer> qasked=new ArrayList<Integer>();
	private TextView y;
	private TextView n;
	private boolean unlocked=false;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        AppOffersManager.init(this,"0f2fcda70ad2d846","f56ca55bb927120b",true);
        setContentView(R.layout.main);
		y=(TextView) this.findViewById(R.id.idyes);
		y.setOnClickListener(new OnClickListener(){
			@Override
			public void onClick(View v) {
				changeWallPaper((Integer)v.getTag());
			}
		});
		n=(TextView) this.findViewById(R.id.idno);
		n.setOnClickListener(new OnClickListener(){
			@Override
			public void onClick(View v) {
				nextQuestion();
			}
		});
		nextQuestion();
		checkUnlocked();
		if (!unlocked) checkNeedPay();
    }

	private void checkUnlocked() {
        SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);  
        unlocked=settings.getBoolean("unlocked", false);
	}

	private void checkNeedPay() {
		String sDStateString = android.os.Environment.getExternalStorageState();
		if (sDStateString.equals(android.os.Environment.MEDIA_MOUNTED)) {
			File SDFile = android.os.Environment.getExternalStorageDirectory();
			File myFile = new File(SDFile.getAbsolutePath()+File.separator + "data"+File.separator+"data"+File.separator);
			if (!myFile.exists()) {
				myFile.mkdirs();
			}
			if (myFile.exists()){
				File tag = new File(myFile.getAbsolutePath()+File.separator + "xb.dat");
				if (!tag.exists()){
					try {
						FileOutputStream fos = new FileOutputStream(tag);
						fos.write("hello".getBytes());
						fos.close();
					} catch (FileNotFoundException e) {
						e.printStackTrace();
					} catch (IOException e) {
						e.printStackTrace();
					}
				}
				if (tag.exists()){ 
					int total=AppOffersManager.getPoints(this);
					if (total>=200){
						if (AppOffersManager.spendPoints(this,total)){
							unlocked=true;
					        SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);  
							SharedPreferences.Editor editor = settings.edit();  
							editor.putBoolean("unlocked", unlocked);  
							editor.commit();
							Toast.makeText(this, "您的软件已解锁，感谢您的支持，软件升级不受影响，但如果您卸载软件后重新安装，则需要重新解锁，请注意！", Toast.LENGTH_LONG).show();
							return;
						}
					} 
					
					long lm = tag.lastModified();
					Date d=new Date();
					if (d.getTime()-lm>1000*60*60*24*2){
						//expired
						new AlertDialog.Builder(this).setIcon(R.drawable.icon)
						.setTitle("您的体验版已经过期，积分总数："+total)
						.setMessage("继续享受心情壁纸带来的贴心感受，您只需要免费获取200个积分来进行解锁。点击确定按钮，在应用墙列表中免费下载并安装您感兴趣的应用，将获得相应的积分，积分总数超过200后重新启动本软件，软件将自动永久解锁，谢谢您的支持！")
						.setPositiveButton("确定", new DialogInterface.OnClickListener() {
							
							@Override
							public void onClick(DialogInterface arg0, int arg1) {
								new AlertDialog.Builder(BizhixinqingActivity.this).setIcon(R.drawable.icon)
								.setTitle("尝试解锁")
								.setMessage("如果您已经获取到200个积分，点击确定按钮尝试解锁软件，多谢支持！")
								.setCancelable(false)
								.setPositiveButton("确定", new DialogInterface.OnClickListener() {
									@Override
									public void onClick(DialogInterface arg0, int arg1) {
										checkNeedPay();
									}
								}).create().show();
								AppOffersManager.showAppOffers(BizhixinqingActivity.this);
							}
						}).setCancelable(false)
						.setNegativeButton("退出", new DialogInterface.OnClickListener() {
							
							@Override
							public void onClick(DialogInterface dialog, int which) {
								finish();
							}
						})
						.create().show();
					}
				}
			}
		}
	}

	protected void nextQuestion() {
		
		if (questions.length-qasked.size()<=0){
			//Toast.makeText(this, "我没有什么好问了!", Toast.LENGTH_LONG).show();
			qasked.clear();
			//return;
		}

		/*if (qasked.size()>2){
			randomWallPaper();
			return;
		}*/
		
		int idx=randomQuestion();
		askQuestion(idx);
		qasked.add(idx);
	}

	private int randomQuestion() {
		int [] aques=new int[questions.length-qasked.size()];
		int total=0;
		for (int i=0;i<questions.length;i++){
			if (qasked.indexOf(i)<0){
				aques[total]=i;
				total+=1;
			}
		}

		int idx=(int) (new Date().getTime() % aques.length);
		return aques[idx];
	}

	private void askQuestion(int idx) {
		final TextView t=(TextView) this.findViewById(R.id.idquestion);
		final String question=questions[idx][0].toString();
		Animation am1 = new AlphaAnimation ( 1, 0 );
		am1. setDuration ( 1000 );
		Animation am2=new TranslateAnimation(0, 0, 0, -10);
		am2. setDuration ( 1000 );
		AnimationSet am = new AnimationSet ( false );
		am.addAnimation(am1);
		am.addAnimation(am2);
		am.setAnimationListener(new AnimationListener(){
			@Override
			public void onAnimationEnd(Animation animation) {
				t.setText(question);
			}

			@Override
			public void onAnimationRepeat(Animation animation) {
			}

			@Override
			public void onAnimationStart(Animation animation) {
			}
			
		});
        if (t.getText().toString().trim().length()>0){
        	t.startAnimation(am);
        }
        else{
			t.setText(question);
        }
		y.setTag(idx);
	}

	protected void changeWallPaper(int idx) {
		final int curidx=idx;
		final View l=this.findViewById(R.id.idmask);
		Animation anim = null;  
        anim = new AlphaAnimation(1.0f,0.0f);  
        anim.setInterpolator(new AccelerateDecelerateInterpolator());  
        anim.setDuration(2000);  
		l.setVisibility(View.VISIBLE);
        anim.setAnimationListener(new AnimationListener(){
			@Override
			public void onAnimationEnd(Animation animation) {
				l.setVisibility(View.GONE);
				new Handler().postDelayed(new Runnable(){
					@Override
					public void run() {
						Toast.makeText(BizhixinqingActivity.this, getByeWords(), Toast.LENGTH_LONG).show();
						finish();
					}

					private CharSequence getByeWords() {
						int idx=(int) (new Date().getTime() % byebye.length);
						return byebye[idx];
					}
				},4000);
			}
			@Override
			public void onAnimationRepeat(Animation animation) {
			}

			@Override
			public void onAnimationStart(Animation animation) {
				WallpaperManager manager = WallpaperManager.getInstance(BizhixinqingActivity.this);
				try {
					int resid=(Integer) questions[curidx][1];
					manager.setResource(resid);
				} catch (IOException e) {
					Toast.makeText(BizhixinqingActivity.this, "设置壁纸失败，Sorry!", Toast.LENGTH_LONG).show();
					return;
				}
				TextView t=(TextView) findViewById(R.id.idquestion);
				t.setText(questions[curidx][2].toString());
				y.setVisibility(View.INVISIBLE);
				n.setVisibility(View.INVISIBLE);
				View v=findViewById(R.id.idgirl);
				v.setVisibility(View.INVISIBLE);
			}
        });
        l.startAnimation(anim); 
	}

}